Skip to content

feature: add discover-azure-skills skill - #3053

Open
JasonYeMSFT (JasonYeMSFT) wants to merge 8 commits into
microsoft:mainfrom
JasonYeMSFT:chuye/discovery-skill
Open

feature: add discover-azure-skills skill#3053
JasonYeMSFT (JasonYeMSFT) wants to merge 8 commits into
microsoft:mainfrom
JasonYeMSFT:chuye/discovery-skill

Conversation

@JasonYeMSFT

@JasonYeMSFT JasonYeMSFT (JasonYeMSFT) commented Aug 10, 2026

Copy link
Copy Markdown
Member

Description

A new discover-azure-skills skill to help discover available skills among all the plugins we own. The discover-azure-skills skill can be triggered when the user explicitly asks the agent to find a new skill/plugin or asks the agent to do an Azure related task. However, it won't be triggered when the user asks informational questions on how to do an Azure related task.

To achieve this trigger condition, a SessionStart hook that injects a higher level instruction is necessary. This PR adds a new SessionStart event hook that injects instructions as additional context to the session. The injected instructions costs ~64 tokens.

The plugin build script is refactored to support building per-plugin hooks. The repo now maintains a shared set of hooks and optionally hooks per plugin. The build script can merge the shared hooks and the per-plugin hooks at compile time. Right now, we share telemetry hook for all plugins and only add this new hook for discover skills to the azure-skills plugin.

Checklist

  • Tests pass locally (cd tests && npm test)
  • Title has one of the prefixes: fix:, feat:, feature:, chore:, misc:, test:, eval:
  • If modifying skill descriptions: verified routing correctness with integration tests (In tests/, npm run test:integration -- <skill> or npm run test:vally -- --skill <skill>)

Related Issues

resolves #2794

@JasonYeMSFT

Copy link
Copy Markdown
Member Author
Screenshot 2026-08-10 at 10 41 50 AM

Example UX in Copilot CLI.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new discover-azure-skills agent skill intended to help users discover relevant Azure-related skills/plugins and includes test registration plus a routing eval to validate invocation behavior.

Changes:

  • Registers discover-azure-skills in tests/skills.json and adds it to the integration schedule.
  • Adds a new skill package under plugins/azure-skills/skills/discover-azure-skills with install reference docs.
  • Adds a new Vally integration eval suite for routing/invocation coverage.
Show a summary per file
File Description
tests/skills.json Adds the new skill to the azure plugin skill list and integration schedule.
plugins/azure-skills/skills/discover-azure-skills/version.json Introduces per-skill NBGV version configuration.
plugins/azure-skills/skills/discover-azure-skills/SKILL.md Defines the discovery workflow and links to install instructions.
plugins/azure-skills/skills/discover-azure-skills/references/install/other.md Provides generic install instructions via npx skills add.
plugins/azure-skills/skills/discover-azure-skills/references/install/copilot-cli.md Provides Copilot CLI installation steps.
plugins/azure-skills/skills/discover-azure-skills/references/install/claude-code.md Provides Claude Code installation steps.
evals/azure-skills/discover-azure-skills/eval.yaml Adds an integration routing eval validating skill invocation across prompts.

Review details

Tip

Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

  • Files reviewed: 7/7 changed files
  • Comments generated: 8
  • Review effort level: Lite

Comment thread plugins/azure-skills/skills/discover-azure-skills/SKILL.md
Comment thread plugins/azure-skills/skills/discover-azure-skills/SKILL.md
Comment thread plugins/azure-skills/skills/discover-azure-skills/SKILL.md Outdated
Comment thread plugins/azure-skills/skills/discover-azure-skills/version.json
Comment thread evals/azure-skills/discover-azure-skills/eval.yaml Outdated
1. Install each skill using `skills` package

```
npx skills add https://github.com/microsoft/azure-skills/tree/main/.github/plugins/{plugin-dirname}/skills/{skill-name}

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Notes for reviewers:

  1. How do you feel about requiring npx? I haven't found any other well-known tool that handles skill installation as well as skills.sh while being more multi-platform friendly.
  2. VS Code is currently categorized under "other" because its built-in mechanism doesn't support specifying which plugin to install from a repo. Allow users to specify which plugin to install in "Install Plugin from Source" command vscode#330047
  3. Skills installed in this way won't send telemetry since hooks won't be installed.

Comment thread plugins/azure-skills/skills/discover-azure-skills/SKILL.md Outdated
Comment thread evals/azure-skills/discover-azure-skills/eval.yaml Outdated
@RickWinter

Copy link
Copy Markdown
Member

Does this skill require me to ask for discovery intentionally? Would the customer need to do "discover" explicitly? Should the skill be more of a guide that happens based on intent to do something Azure?

@JasonYeMSFT

Copy link
Copy Markdown
Member Author

Does this skill require me to ask for discovery intentionally? Would the customer need to do "discover" explicitly? Should the skill be more of a guide that happens based on intent to do something Azure?

I expect the user to at least express the intent to learn how to do something in Azure to trigger this skill. I intend to avoid having the skill triggered when it's not the case.

We can discuss more details of the design in this issue. https://github.com/microsoft/GitHub-Copilot-for-Azure-pr/issues/358

@JasonYeMSFT

JasonYeMSFT (JasonYeMSFT) commented Aug 19, 2026

Copy link
Copy Markdown
Member Author

I was able to implement the discover-azure-skills skill to make it work like a catch-all skill when the user issue commands for Azure tasks without explicitly asking for finding new skills. However, given that we only have one additional plugin available right now, the overhead we introduce by making agents trying hard to find new skills is very significant. I still prefer taking an conservative approach for now, grow the platform to have more plugins/skills and tune the skill to make more aggressive recommendations later.

Write-Output '{"hookSpecificOutput": {"hookEventName": "SessionStart", "additionalContext": "Make sure to use discover-azure-skills once when the user asks you to execute a task related to Azure if there is no relevant skill/mcp tool in the context. Avoid using discover-azure-skills when the user asks informational questions on how to do something."}}'

# Output success to stdout (required by hooks)
Write-Success No newline at end of file

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Write-Success is defined only inside track-telemetry.ps1 and this script does not import it. Every Windows Copilot CLI or VS Code session therefore emits a command-not-found error during SessionStart after writing the context. Replace this with a local success response or an explicit exit 0 so the hook completes cleanly.

@@ -0,0 +1,3 @@
#!/bin/bash

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This script has a shebang but is committed as mode 100644, while the existing hook script is executable. The Copilot CLI, Claude Code, and Cursor manifests invoke it as a command, so Unix sessions can fail with Permission denied before the discovery context is emitted. Mark this file executable in Git.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Build the installer skill in the core plugin for plugin discovery

4 participants